EMQX入门实战(1)–安装及简单使用

您所在的位置:网站首页 web 入门 EMQX入门实战(1)–安装及简单使用

EMQX入门实战(1)–安装及简单使用

#EMQX入门实战(1)–安装及简单使用| 来源: 网络整理| 查看: 265

EMQX 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器,本文主要介绍其安装及简单使用,文中使用到的软件版本:emqx 4.4.2、Centos 7.

1、概述

EMQX (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。

MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

EMQX 设计目标是实现高可靠,并支持承载海量物联网终端的 MQTT 连接,支持在海量物联网设备间低延时消息路由:

稳定承载大规模的 MQTT 客户端连接,单服务器节点支持 200 万连接。分布式节点集群,快速低延时的消息路由。消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。2、单机安装

EMQX 提供了多种安装方式:RPM/DEB包安装 (Linux)、ZIP 压缩包安装 (Linux、MacOS、Windows)、通过 Docker 运行、通过 Helm 安装、源码编译安装;这里主要介绍 通过ZIP 压缩包安装 EMQX。

2.1、下载并解压安装包

下载对应系统的安装包:https://www.emqx.com/zh/try?product=broker,然后解压:

unzip emqx-4.4.2-otp24.1.5-3-el7-amd64.zip

2.2、启动 EMQX Broker

cd emqx/bin./emqx start

2.3、停止 EMQX Broker

cd emqx/bin./emqx stop

2.4、查看状态

cd emqx/bin./emqx_ctl status

2.5、Listener

Listener 主要用于配置不同协议的监听端口和相关参数,EMQX 支持配置多个 Listener 以同时监听多个协议或端口,以下是支持的 Listener:

监听器说明TCP ListenerA listener for MQTT which uses TCPSSL ListenerA secure listener for MQTT which uses TLSWebsocket ListenerA listener for MQTT over WebSocketsSecure Websocket ListenerA secure listener for MQTT over secure WebSockets (TLS)

EMQX 默认提供 5 个 Listener,它们将占用以下端口:

端口说明1883MQTT/TCP 协议端口11883MQTT/TCP 协议内部端口,仅用于本机客户端连接8883MQTT/SSL 协议端口8083MQTT/WS 协议端口8084MQTT/WSS 协议端口2.5、控制台

EMQX 提供了 Dashboard 以方便用户管理设备与监控相关指标。控制台地址为:http://localhost:18083,默认用户名密码为:admin/public,可以在 etc/plugins/emqx_dashboard.conf 配置文件中修改默认密码。

3、集群安装3.1、集群原理

Erlang/OTP 最初是爱立信为开发电信设备系统设计的编程语言平台,电信设备(路由器、接入网关等)典型设计是通过背板连接主控板卡与多块业务板卡的分布式系统。

Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信:

EMQX 消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则:

MQTT 客户端订阅主题时,所在节点订阅成功后广播通知其他节点:某个主题(Topic)被本节点订阅。

MQTT 客户端发布消息时,所在节点会根据消息主题(Topic),检索订阅并路由消息到相关节点。

3.2、集群规划ip节点名称[email protected]@[email protected]、按单机方式安装 EMQX

在各机器上按单机方式安装 EMQX,注意修改配置(etc/emqx.conf)的节点名称:

10.49.196.10 上:

node.name = [email protected]

10.49.196.11 上:

node.name = [email protected]

10.49.196.12 上:

node.name = [email protected]

分别启动各机器上的 EMQX。

3.4、节点加入集群

在 10.49.196.11 和 10.49.196.12 上执行:

cd emqx/bin./emqx_ctl cluster join [email protected]

3.5、节点推出集群

A、节点主动退出集群:

cd emqx/bin./emqx_ctl cluster leave

B、在其他节点上删除其他节点

如在  [email protected] 上删除 [email protected]  节点:

cd emqx/bin./emqx_ctl cluster force-leave [email protected]

3、认证

身份认证是大多数应用的重要组成部分,MQTT 协议支持用户名密码认证,启用身份认证能有效阻止非法客户端的连接。

EMQX 中的认证指的是当一个客户端连接到 EMQX 的时候,通过服务器端的配置来控制客户端连接服务器的权限。

EMQX 的认证支持包括两个层面:

MQTT 协议本身在 CONNECT 报文中指定用户名和密码,EMQX 以插件形式支持基于 Username、ClientID、HTTP、JWT、LDAP 及各类数据库如 MongoDB、MySQL、PostgreSQL、Redis 等多种形式的认证。

在传输层上,TLS 可以保证使用客户端证书的客户端到服务器的身份验证,并确保服务器向客户端验证服务器证书。也支持基于 PSK 的 TLS/DTLS 认证。

这里主要介绍下基于内置数据源(Mnesia)的认证。

3.1、修改配置

根据需要在 etc/plugins/emqx_auth_mnesia.conf 文件中修改密钥算法、增加或修改用户信息。

## Value: plain | md5 | sha | sha256 | sha512auth.mnesia.password_hash = sha256auth.user.1.username = adminauth.user.1.password = 123456

3.2、启用插件

在控制台启用该插件即可。

4、MQTTX 使用

MQTT X 是一款优雅的跨平台 MQTT 5.0 开源桌面客户端工具,支持在 macOS, Linux 和 Windows 上运行。下载与使用可参考 MQTT X 官网。

 

 

 

更多详细的说明可参考官网文档:https://www.emqx.io/docs/zh/v4.4/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3